Factor out window mapping and unmapping functions. (#63820, Tilman
authorMatthias Clasen <mclasen@redhat.com>
Fri, 27 Apr 2007 23:26:46 +0000 (23:26 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 27 Apr 2007 23:26:46 +0000 (23:26 +0000)
2007-04-27  Matthias Clasen  <mclasen@redhat.com>

        * gdk/x11/gdkgeometry-x11.c: Factor out window mapping
        and unmapping functions.  (#63820, Tilman Sauerbeck)

svn path=/trunk/; revision=17663

ChangeLog
gdk/x11/gdkgeometry-x11.c

index 70f38ee33c28ceda92179f1c649ba968e65a4528..833eca4d5428dcbec0fc009b49fe559df15be732 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-27  Matthias Clasen  <mclasen@redhat.com>
+
+       * gdk/x11/gdkgeometry-x11.c: Factor out window mapping
+       and unmapping functions.  (#63820, Tilman Sauerbeck)
+
 2007-04-27  Matthias Clasen  <mclasen@redhat.com>
 
        * gdk/x11/gdkgeometry-x11.c: Make list handling code
index 5d6cef743f2fa5a95ad2a1cee942a191f3f03a16..0c734f967f172b3a411ebbb8205b2acdea04474e 100644 (file)
@@ -576,6 +576,26 @@ reset_backgrounds (GdkWindow *window)
     _gdk_x11_window_tmp_reset_bg ((GdkWindow *)obj->parent, FALSE);
 }
 
+static void
+map_if_needed (GdkWindow *window, GdkXPositionInfo *pos_info)
+{
+  GdkWindowObject *obj = (GdkWindowObject *) window;
+  GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (obj->impl);
+
+  if (!impl->position_info.mapped && pos_info->mapped && GDK_WINDOW_IS_MAPPED (obj))
+    XMapWindow (GDK_DRAWABLE_XDISPLAY (window), GDK_DRAWABLE_XID (window));
+}
+
+static void
+unmap_if_needed (GdkWindow *window, GdkXPositionInfo *pos_info)
+{
+  GdkWindowObject *obj = (GdkWindowObject *) window;
+  GdkWindowImplX11 *impl = GDK_WINDOW_IMPL_X11 (obj->impl);
+
+  if (impl->position_info.mapped && !pos_info->mapped)
+    XUnmapWindow (GDK_DRAWABLE_XDISPLAY (window), GDK_DRAWABLE_XID (window));
+}
+
 void
 _gdk_window_move_resize_child (GdkWindow *window,
                               gint       x,
@@ -665,8 +685,7 @@ _gdk_window_move_resize_child (GdkWindow *window,
 
       reset_backgrounds (window);
 
-      if (!impl->position_info.mapped && new_info.mapped && GDK_WINDOW_IS_MAPPED (obj))
-       XMapWindow (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window));
+      map_if_needed (window, &new_info);
       
       impl->position_info = new_info;
       
@@ -677,8 +696,7 @@ _gdk_window_move_resize_child (GdkWindow *window,
       if (is_move && is_resize)
        gdk_window_set_static_gravities (window, FALSE);
 
-      if (impl->position_info.mapped && !new_info.mapped)
-       XUnmapWindow (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window));
+      unmap_if_needed (window, &new_info);
       
       g_list_foreach (obj->children, (GFunc) gdk_window_premove, &parent_pos);
 
@@ -695,8 +713,7 @@ _gdk_window_move_resize_child (GdkWindow *window,
 
       reset_backgrounds (window);
       
-      if (!impl->position_info.mapped && new_info.mapped && GDK_WINDOW_IS_MAPPED (obj))
-       XMapWindow (GDK_WINDOW_XDISPLAY (window), GDK_WINDOW_XID (window));
+      map_if_needed (window, &new_info);
 
       impl->position_info = new_info;
     }
@@ -887,8 +904,7 @@ gdk_window_premove (GdkWindow          *window,
   this_pos.x11_y = parent_pos->x11_y + new_info.y;
   this_pos.clip_rect = new_info.clip_rect;
 
-  if (impl->position_info.mapped && !new_info.mapped)
-    XUnmapWindow (GDK_DRAWABLE_XDISPLAY (window), GDK_DRAWABLE_XID (window));
+  unmap_if_needed (window, &new_info);
 
   d_xoffset = new_info.x_offset - impl->position_info.x_offset;
   d_yoffset = new_info.y_offset - impl->position_info.y_offset;
@@ -945,8 +961,7 @@ gdk_window_postmove (GdkWindow          *window,
                         new_info.x, new_info.y, new_info.width, new_info.height);
     }
 
-  if (!impl->position_info.mapped && new_info.mapped && GDK_WINDOW_IS_MAPPED (obj))
-    XMapWindow (GDK_DRAWABLE_XDISPLAY (window), GDK_DRAWABLE_XID (window));
+  map_if_needed (window, &new_info);
 
   reset_backgrounds (window);